#ifndef MOUSE_H
#define MOUSE_H

#include <vector>

enum ButtonState
{
    Down, Pressed, Up
};

enum Button
{
    Left, Right, Middle
};

struct MousePosition
{
    int x;
    int y;
};

class Mouse
{
    public:

    /****************************
    /*          Static
    /****************************/

        /********************************
        /*          Properties
        /********************************/

            static std::vector<ButtonState>     s_Buttons; /*!< Store the 3 mouses buttons and theirs states  */

            static MousePosition                s_LastPosition;
            static MousePosition                s_CurrentPosition;
            static MousePosition                s_Mouvement;

        /********************************
        /*          Methods
        /********************************/

            static void Init();

            static void IsMouseButtonDown(Button button);
            static void IsMouseButtonPressed(Button button);
            static void IsMouseButtonUp(Button button);

            static void IsMouseMove();
            static void IsMouseDrag(Button button);



};

#endif
